//
//  YTFTabbar.swift
//  sinaWeibo
//
//  Created by pro on 16/2/25.
//  Copyright © 2016年 pro. All rights reserved.
//

import UIKit

class YTFTabbar: UITabBar {

    //自定义视图
    //第一步：重写init
    override init(frame: CGRect) {
        //重写系统的方法，一般都要先调用父类的方法
        super.init(frame: frame)
        
        //调用添加视图和设置约束的方法
        setupUI()
        
    }
    //系统担心使用storyBoard，会给一个提示,点击即可
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    //第二步：创建一个私有方法来添加视图和约束
    private func setupUI(){
        
        addSubview(composeButton)
        
    }
    
    //第三步：懒加载
    lazy var composeButton: UIButton = {
        //创建一个自定义的button
        let button = UIButton(type: UIButtonType.Custom)
        
        //设置button的属性
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        //设置button大小(适应背景图片的大小)
        button.sizeToFit()
        
        //返回button
        return button

    }()
    
    
    //重写layoutSubview来修改tabbar的子控件位置
    override func layoutSubviews() {
        //调用父类的方法
        super.layoutSubviews()
        
        //创建一个索引
        var index = 0
        let width = bounds.width / 5
        let height = bounds.height
        
        //遍历子控件来设置frame
        for subview in subviews {
            
            //判断子视图的类型是否是UITabbarButton
            //因为UITabbarButton是一个私有属性，这里获取不到，所以使用字符串转类型的方法
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!){
                //设置frame
                subview.frame = CGRectMake(CGFloat(index++) * width, 0, width, height)
                if index == 2{
                    index++
                }
            }
        }
        
        //设置按钮的位置
        composeButton.frame = CGRectMake(2.0 * width, 0, width, height)
        
    }
    
    

}








